package com.ws.boot.demo.validate.service.manual;

import com.ws.boot.demo.validate.entity.*;
import com.ws.boot.validate.annotation.ValidComponent;
import com.ws.boot.web.domain.DefaultResponse;

/**
 * 手动校验 .
 *
 * @className: ManualService
 * @author: ws
 * @date: 2020/4/7 11:40
 * @version: 1.0.0
 */
@ValidComponent
public interface ManualService {

    /**
     * 校验没有 @ValidBean .
     * @param idCard2
     * @author ws
     * @date 2020/4/7 11:43
     * @return Response
     **/
    DefaultResponse checkerNoValidBean(IdCard2 idCard2);

    /**
     * 校验 Bean 一层 .
     * @param idCard
     * @author ws
     * @date 2020/4/7 11:44
     * @return Response
     **/
    DefaultResponse checkerBeanOneLevel(IdCard idCard);

    /**
     * 校验 Bean 两层 .
     * @param person
     * @author ws
     * @date 2020/4/7 10:49
     * @return Response
     **/
    DefaultResponse checkerBeanTwoLevel(Person person);


    /**
     * 校验 Bean 三层 .
     * @param person4
     * @author ws
     * @date 2020/4/15 10:46
     * @return Response
     **/
    DefaultResponse checkerBeanThreeLevel(Person4 person4);

    /**
     * 校验 Bean 带分组 三层 .
     * @param person5
     * @param groups
     * @author ws
     * @date 2020/4/15 11:38
     * @return Response
     **/
    DefaultResponse checkerBeanWithGroupThreeLevel(Person5 person5, Class... groups);

}
